package com.ljx.recruitment.interview.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.ljx.recruitment.common.domain.vo.resp.PageResp;
import com.ljx.recruitment.interview.domain.dto.DashboardDeliverTrendDateDto;
import com.ljx.recruitment.interview.domain.entity.Deliver;
import com.ljx.recruitment.interview.domain.entity.JobProcess;
import com.ljx.recruitment.interview.domain.vo.req.DeliverPageReq;
import com.ljx.recruitment.interview.domain.vo.req.DeliverProcessReq;
import com.ljx.recruitment.interview.domain.vo.req.DeliverSubmitReq;
import com.ljx.recruitment.interview.domain.vo.resp.DeliverResp;

import java.util.Date;
import java.util.List;

public interface DeliverService extends IService<Deliver> {
    PageResp<DeliverResp> getPage(DeliverPageReq req);

    void changeStatus(Long deliverId, Integer option, DeliverSubmitReq req);

    DeliverResp submit(DeliverSubmitReq req);

    DeliverResp getInfo(Long deliverId);

    void processSubmit(DeliverProcessReq req);

    List<JobProcess> getDeliverProcessSettingList(Long jobId, Long deliverId);

    PageResp<DeliverResp> getRecommendDeliverList(DeliverPageReq req);

    Boolean checkIsDeliver(Long jobId);

    Integer getTenantDeliverCount(Long tenantId);

    Integer getDeliverCompletionRate();

    List<DashboardDeliverTrendDateDto> getTenantCountGroupByDate(Long tenantId, List<Date> dates);
}
